package com.ygqh.baby.service;

import java.util.List;
import java.util.Map;

import com.ygqh.baby.ao.Message;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.po.AdminContractDetail;
import com.ygqh.baby.po.YgSkuMaterial;

/**
 * @author admin
 */
public interface YgSkuMaterialService {

	List<YgSkuMaterial> find();

	int findCount();

	YgSkuMaterial findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgSkuMaterial ygSkuMaterial);

	int update(YgSkuMaterial ygSkuMaterial);

	int saveOrUpdate(YgSkuMaterial ygSkuMaterial);

	List<YgSkuMaterial> findSkuCostByProductId(String productCode);

	Message saveOrUpdate(List<YgSkuMaterial> list, String createBy);

	Message saveSkuCostByGroupCode(List<YgSkuMaterial> list, String createBy, Long groupId);

	void setSkuMaterialByContractCode(
			List<AdminContractDetail> adminContractDetails);

	YgSkuMaterial findSkuByBarCode(String barCode);

	void updateSkuMaterial(List<YgSkuMaterial> ygSkuMaterial, String trueName);

	ResultSet<YgSkuMaterial> search(QueryInfo queryInfo, String productCode,
									String skuCode, String productName, String barCode);

	List<YgSkuMaterial> findSkuByBarCodes(List<String> codes);

	YgSkuMaterial findBySkuCode(String skuCode);

	void saveBatchSkuCost(List<YgSkuMaterial> ygSkuMaterials);

	List<YgSkuMaterial> findListBySkuCode(List<String> skuCodeList);

    int updateCostPriceBatch(List<YgSkuMaterial> costList, String trueName);

	int updateBarcodeBatch(List<YgSkuMaterial> list, String trueName);
}
